The present invention is directed to a method and mechanism for linking names to storage objects in a computer system. Many storage objects, such as hard disk partitions, are internally identified by computer systems using arbitrary, confusing, or lengthy sequences of numbers or characters which renders the internal identifier difficult to recognize and remember. Thus, more easily recognizable names are often associated with storage objects to provide access and reference to those objects. As just one example, the NT operating system provided by Microsoft Corporation uses “symbolic linking” to associate meaningful names with hard disk partitions. In this approach, the “registry” of the operating system includes information that links a particular hard disk partition with an alternate name that has been chosen for that partition.
To illustrate, consider a computer system 100a as shown in FIG. 1. A computer node 102 is communicatively coupled to a first hard drive 106, a second hard drive 114, and a third hard drive 120. Hard drive 106 includes two partitions 108 and 110. Hard drive 114 includes a single partition 114. Hard drive 120 includes two partitions 116 and 118. Computer node 102 may identify these hard drives and their partitions using an internal identification syntax, such as internal identifiers formed by sequentially numbering each hard drive and partition. Thus, the first partition 108 for the first hard drive 106 could be identified as “:c” (or “Partition_1:HD_1” or any other sequentially based identifier) and the second partition 110 for the first hard drive 106 could be identified as “:d” (or “Partition_2:HD_1”). Similarly, the partition 114 for the second hard drive 114 could be identified as “:e”. The first partition 116 for the third hard drive hard 120 could be internally identified as “:f” and the second partition 118 for the same hard drive 120 could be identified as “:g”.
To facilitate access to these hard disk partitions, symbolic name links could be used to associate more meaningful names to each partition. For example, if the second partition 110 of the first hard disk 106 (referred to above as “:d” or “Partition_2:HD_1”) is heavily utilized by the human resources department of an organization, then a symbolic link may be applied to give a new name “human_resources_partition” to this partition. In effect, the operating system maintains a link between the name “human_resources_partition” and the internal identifier “:d” or “Partition_2:HD_1”. Both the internal identification and the more meaningful symbolic name can thereafter be used to access hard disk partition 110.
Consider if computer system 100a is reconfigured to the configuration shown as computer system 100b. In particular, partition 108 has been removed from hard disk 106 and the entire hard disk 114 has been removed from the computer system 100b. As noted above, the internal identification for each partition was established by sequentially numbering/lettering each partition and hard drive. Under this approach, since the configuration of hard drives and partitions have changed, the internal identifications may be reestablished based upon the new sequential numbering lettering of the remaining partitions and hard drives in the computer system 100b. Thus, partition 110, which was formerly the second partition of the first hard drive 106 with internal identification “:d” or “Partition_2:HD_1”, is now the first (and only) partition of hard drive 106 with internal identification “:c” or :Partition_1:HD_1”, which was the former internal identifier for the removed partition 108.
The problem is that a symbolic link for the name “human_resources_partition” had previously been mapped to the former internal identifier for partition 110, i.e., “:d” or “Partition_2:HD_1”, and this symbolic link no longer references its intended partition in the computer system 100b. If the symbolic link is not adequately remapped, the name “human_resources_partition” can no longer be used to access the intended partition 110. Even worse, the renumbering of the internal identifiers could cause the symbolic link to point to another partition that exists in the system that now uses this former linked identifier, resulting in the unintended corruption or deletion of data from another partition.
In a similar manner, the removal of hard disk 114 causes the sequential renumbering of the internal identifiers for hard disk 120 since this hard disk has changed from the third hard disk drive to the second hard disk drive in computer system 100. Thus, the former internal identifiers for partitions 116 and 118, respectively, will change after the reconfiguration of computer system 100b. Any symbolic name links established using the previous internal identifiers would be in error after the reconfiguration of computer system 100b. 
This problem is further compounded if multiple network nodes seek to access the same storage device objects across a network, since management of storage devices is often performed locally. This presents additional problems for remote nodes seeking to maintain valid name links in the face of system reconfigurations.
To address these issues, the present invention provides an improved method and mechanism for linking names to storage objects in the computer system. According to an aspect of one embodiment of the invention, name linking information is co-located with the storage-object, rather than being stored only at a computer node. By maintaining name liking information with a storage object, that name linking information can still be used to correctly associate an alternate name with that storage object, regardless of configuration changes that move or delete storage objects in the system and regardless of any changes to internal identifiers for that storage object. Further aspects, objects, and advantages of the invention are described below in the detailed description, drawings, and claims.